โค้ดการส่งจดหมายเวียน ด้วย phpmailer


หน้าแรก PHP MySQL เกร็ดความรู้ โค้ดการส่งจดหมายเวียน ด้วย phpmailer
     มีคำถามมาจากบอร์ดว่าผมส่งอีเมล์ยังไงให้เป็น UTF-8 และไม่ติดอยู่ใน Junk รวมถึงสามารถส่งหาคนเกือบหมื่นโดยไม่ถูกแบนหาว่าเป็น Spam

     เคล็ดลับการส่งเมล์อยู่ที่การใช้ phpmailer ในการส่งครับ ซึ่งเวอร์ชั่นที่ผมใช้นี้สามารถส่งแบบ UTF-8 ได้อย่างสมบูรณ์ นอกจากนี้มันยังสามารถแนบไฟล์ได้ รวมถึงสามารถ ส่งเมล์ผ่านบริการของ gmail ได้ด้วย

ในตอนนี้ผมจะพูดถึงแค่การส่งจดหมายเวียน และการใช้งาน phpmailer เบื่องต้นเท่านั้นนะครับ
    // ค่ากำหนดของเว็บไซต์
    include ('config.php');
    // class database
    include ('db.class.php');
    // เรียกใช้งานฐานข้อมูล
    $db = new sql($config[db_server], $config[db_username], $config[db_password], $config[db_name], $config[db_language]);
    // เรียกใช้ phpmailer
    require_once ('class.phpmailer.php');

    // อ่านรายชื่อสมาชิกทั้งหมดจากฐานข้อมูล
    $sql = "SELECT * FROM user";
    // วนลูปส่งทีละคน
    foreach ($db->customQuery($sql) AS $item) {
        // โค้ดการส่งเมล์
        $mail = new PHPMailer(true);
        $mail->IsSMTP(); // telling the class to use SMTP
        try {
            $save[activatecode] = rndname(32); // สุ่มรหัส activate ใหม่
            // จัดการข้อความที่จะส่งไปกับ email
            $subject = "เรียนสมาชิก $config[web_title]";
            $message = "เรียน คุณ $item[displayname] สมาชิก $config[web_title]

            อีเมล์นี้ถูกส่งมาโดยระบบอัตโนมัติ เพื่อใช้ในการยืนยันการเป็นสมาชิกของ $config[web_title]
            หากคุณได้รับอีเมล์มากกว่า 1 ฉบับ โปรดเลือกอีเมล์ที่ใช้ชื่อที่ถูกต้องของคุณ เพือใช้ในการเข้าระบบ

            ชื่อ :: $item[username]
            รหัสผ่าน :: $item[password]

            ขอให้ คุณ$item[displayname] เข้าไปยืนยันและตรวจสอบความถูกต้องของข้อมูลพร้อมเปลี่ยนรหัสผ่านใหม่ได้ ที่้ $config[web_url]/modules/member/activate.php?id=$save[activatecode]
            สมาชิกที่ไม่ได้ทำการยืนยันอีเมล์จะถูกลบออกจากระบบเป็นการถาวรภายใน 30 วัน

            หากอีเมล์นี้รบกวนท่าน เว็บมาสเตอร์ ต้องขออภัยมา ณ. ที่นี้ด้วย";
            // แสดงรายชื่ออีเมล์ที่ส่ง
            echo $item[email];
            // ส่งเมล์
            $mail->Encoding = "quoted-printable";
            $mail->CharSet = "utf-8";
            $mail->AddReplyTo($config[admin_email], $config[admin_email]);                  
            $mail->AddAddress($item[email], $item[username]);
            $mail->SetFrom($config[webmaster_email], $config[webmaster_email]);
            $mail->Subject = $subject;
            $mail->MsgHTML($message);
            $mail->Send();
            // จบโค้ดการส่งเมล์
        }
        catch (phpmailerException$e) {
            echo ' MAIL_SEND_ERROR';
        }
        catch (Exception $e) {
            echo ' MAIL_SEND_ERROR';
        }
        echo '
';
    }
    $db->close();
?>

ก่อนอื่นคุณต้องติดตั้ง phpmailer ก่อนครับ โดยติดตั้งไว้ไดเร็คทอรี่เดียวกันกับโค้ดนี้แหละครับ ไม่ต้องปรับแต่งอะไรโค้ด แล้วก็ทดสอบได้เลยครับ

ลองไปดัดแปลงกันดูนะครับ คุณอาจต้องจัดการเปลี่ยนแปลงโค้ดบางส่วนให้เป็นไปตามค่ากำหนดของเว็บคุณ เนื่องจากโค้ดที่เห็น เป็นโค้ดที่ผมใช้บนเว็บผมครับ

refer: http://www.goragod.com/knowledge-โค้ดการส่งจดหมายเวียน%20ด้วย%20phpmailer.html?search=PHPMailer


ขึ้นไปด้านบน